/*
 * 26-abr-2008 
 */
package futbol.tacticas.concursantes.chuky.futbolista;

import java.awt.Point;

import futbol.tacticas.concursantes.chuky.util.Balon;

/**
 *
 * @author Joan Crosas
 */
public interface FutbolistaBase {
	public static final double DISTANCIA_BALON_ENCIMA = 9.99;
	
	/**
	 * tiempo maximo que permitimos realizar un pase
	 */
	public static final int TIEMPO_MAX_PASE = 16;
	
	/**
	 * Margen minimo de seguridad para que el pase sea considerado bueno
	 */
	public static final double MARGEN_SEGURIDAD_PASES = 1.8;
	
	public static final int FUERZA_AUTOPASE = 3;
	public static final double MARGEN_SEGURIDAD_AUTOPASE = 3.6;
	public static final int TIEMPO_ANTICIPACION_PASE = 3;
	public static final int TIEMPO_MARGEN_PASE = 3;
	
	public static final int FUTBOLISTA_PORTERO = 0;
	public static final int FUTBOLISTA_DEFENSA = 1;
	public static final int FUTBOLISTA_CENTRO = 2;
	public static final int FUTBOLISTA_PIVOTE = 3;
	public static final int FUTBOLISTA_DELANTERO = 4;
	
	public static final int FUTBOLISTA_OPONENTE = -1;
	
	public int getNumero();
	public int getFuerza();
	public int getVelocidad();
	public Point getPosicion();
	public int getPosicionCampo();
	
	public boolean puedoLlegar( Point posicion, int tiempo );
	public boolean puedoLlegar( Point posicion, int tiempo, int tiempoAnticipacion );
	public int puedoInterceptar( Balon balon );
	public int puedoInterceptar( Balon balon, int tiempoMargen );
	public int puedoInterceptar( Balon balon, int tiempoMargen, int tiempoAnticipacion );
	public double distanciaMovimiento( int tiempo );
	public boolean balonEncima( Balon balon );

}
